Cloud computing services allow users to create, edit, share, and collaborate on files that are stored on the cloud computing service. Users connect to the cloud computing service over a remote network such as the Internet. Files that may be stored on the cloud computing service include word processing documents, spreadsheets, presentations, images, audio files, video files, and many other types of documents and files. The cloud computing service also provides document editing applications for displaying and editing certain files. These applications are sent from the cloud computing service to a client computer and displayed on a web browser executing on the client computer. For example, a cloud computing service may send to a client computer a document editing application for displaying and editing spreadsheets stored on the cloud computing service.
A document editing application for spreadsheets provided by the cloud computing service may also have a calculation engine for performing calculations on the spreadsheets. When a user inputs values or commands into a spreadsheet that result in a calculation, the calculation is performed locally and the result is displayed to the user. Alternatively, all user input may be sent to the cloud computing service, which also has a calculation engine that performs the calculation. The result is sent to the client computer for display. In some cases, the calculation may be performed more quickly by the cloud computing service than the client computer. For example, the servers of the client computing service may be able to handle complex calculations better than the client computer. In another example, the client computer may have limited memory or CPU speed for performing calculations, or may be handling other processes at the same time. On the other hand, simple calculations may be handled more quickly by the client computer because of network latency in communicating with the server. However, it is difficult to know a priori whether the cloud computing service or the client computer can perform calculations more quickly. Whether the cloud computing service or client computer is faster for a given calculation depends on a number of factors including the type of calculation and the current computing resources available to the server and the client computer.